Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра САПР
ЗВІТ
про виконання лабораторної роботи №1
на тему: «Послідовний метод доступу до файлів на зовнішніх запам’ятовуючих пристроях»
з курсу: «Організація баз даних і знань»
Виконав: ст. гр. КН-3
Львів 2007
Тема роботи
Послідовний метод доступу до файлів на зовнішніх запам’ятовуючих пристроях
Мета роботи
Розглянути органiзацiю i ведення файлiв послiдовного доступу; набути практичнi навички у програмуваннi алгоритмiв роботи з файлами послiдовного доступу.
Лабораторне завдання
Тема завдання: Персонал школи
1. Написати програму, яка реалізує такі функції:
1.1. Друк бази даних.
1.2. Пошук запису за введеним ключем.
1.3. Видалення запису за введеним ключем.
1.4. Вставлення запису.
1.5. Модифікація запису.
2. Написати програму групового оброблення файла даних, яка реалізує наступні функції:
2.1. Створення файлу повідомлень.
2.2. Друк бази даних.
2.3. Пошук запису за введеним ключем.
2.4. Видалення запису за введеним ключем.
2.5. Вставлення запису.
2.6. Модифікація запису.
Короткі теоретичні відомості
Текст програми 2
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
/*-------------------------Opys globalnyh zminnyh---------------------------*/
char pr,cl[100],cl2[]="sec.txt";
int choice,i,m,p;
FILE *f1,*f2,*f3;
/*--------------------Opys struktury danyh v bazi danyh---------------------*/
struct DB{
int id;
char name[12];
char lname[9];
char pname[13];
char datan[11];
char posada[10];
char tel[9];
float zarplata;
};
struct DB db1,db2;
/*---------------------Funkcija vidkryttia fajliv---------------------------*/
void openf()
{
f1=fopen(cl,"r");
f2=fopen(cl2,"w");
if(f1==NULL) {printf("\nNE ISNUJE TAKOGO FAJLU BAZY DANYH!!!");getch();exit(1); }
}
void openf2()
{
f1=fopen(cl,"r");
if(f1==NULL) {printf("\nNE ISNUJE TAKOGO FAJLU BAZY DANYH!!!");getch();exit(1); }
}
/*---------------------Funkcija zakryttia fajliv----------------------------*/
void closef()
{
fclose(f1);
fclose(f2);
remove(cl);
rename(cl2,cl);
}
/*-----------------------Funkcija rozdruku bazy danyh-----------------------*/
void rozdruk()
{
int k=1;
//f1=fopen("cl.txt","r");
openf2();
printf("\nID Prizvyshche Imja Po-bat'kovi D/N Posada N.Tel. Zarplata");
fscanf(f1,"%d%s%s%s%s%s%s%f", &db1.id, db1.name, db1.lname, db1.pname, db1.datan, db1.posada, db1.tel, &db1.zarplata);
while(!feof(f1))
{
printf("\n%-2d %-12s %-9s %-13s %-11s %-10s %-9s %4.2f", db1.id, db1.name, db1.lname, db1.pname, db1.datan, db1.posada, db1.tel, db1.zarplata);
fscanf(f1,"%d%s%s%s%s%s%s%f", &db1.id, db1.name, db1.lname, db1.pname, db1.datan, db1.posada, db1.tel, &db1.zarplata);
k++;
if(k%15==0)getch();
}
fclose(f1);
}
/*-----------------------Funkcija poshuku u bazi danyh----------------------*/
void poshuk()
{
printf("Vvedit' nomer zapysu, jakyj potribno znajty: ");
scanf("%d",&m);
f1=fopen("cl.txt","r");
p=0;
while(!feof(f1))
{
fscanf(f1,"%d%s%s%s%s%s%s%f", &db1.id, db1.name, db1.lname, db1.pname, db1.datan, db1.posada, db1.tel, &db1.zarplata);
if(db1.id==m)
{
p=1;
printf("\nZapus z nomerom %d\n",m);
printf("%-12s %-9s %-13s %-11s %-10s %-9s %4.2f\n", db1.name, db1.lname, db1.pname, db1.datan, db1.posada, db1.tel, db1.zarplata);
}
}
if(p==0)printf("\nNE ISNUJE ZAPYSU Z NOMEROM,JAKYJ VY VVELY!!!\n");
fclose(f1);
}
/*-------------------Funkcija vstavky zapysu u bazu danyh-------------------*/
void vstavlennia()
{
char yes_no;
int p2=0,id,mn;
printf("Vvedit' novi dani u takomu formati:\n<ID> <Prizvyshche> <Imja> <Pobat'kovi> <D.N.> <posada> <nom.tel.> <zarplata>\n");
scanf("%d%s%s%s%s%s%s%f", &db2.id, db2.name, db2...